第0章 恶意代码分析技术入门
0x1 恶意代码分析目标
分析可疑的恶意代码:
- 确定该二进制程序可以做什么
- 如何在网络上检测出它
- 如何衡量并消除它所带来的危害
恶意代码分析可以用来编写基于主机和基于网络的检测验证码
基于主机的特征码(感染迹象),用于在受感染的主机上检测出恶意代码
恶意代码感染迹象关注的是恶意代码对系统做了什么
网络特征码是通过检测网络流量来检测恶意代码的
0x2 恶意代码分析技术
两类基本方法:
- 静态分析
- 动态分析
静态分析基础技术
检查可执行文件但不查看具体指令
动态分析基础技术
运行恶意代码并观察系统上的行为,以移除感染,产生有效的检测特征码
静态分析高级技术
主要是对恶意代码内部机制的逆向工程,通过将可执行文件装载到反汇编
器中,查看程序指令,来发现恶意代码到底做了什么。这些指令是被CPU执行的,所以静态分析高级技术能够告诉你程序具体做了哪些事情。
动态分析高级技术
使用调试器来检查一个恶意可执行程序运行时刻的内部状态
0x3 恶意代码类型
后门:恶意代码将自身安装到一 台计算机来允许攻击者访问。后门程序通常让攻击者只需很少认证甚至无须认证,便可连接到远程计算机上,并可以在本地系统执行命令。
僵尸网络:与后门类似,也允许攻击者访问系统。但是所有被同一 个僵尸网络感染的计算机将会从一 台控制命令服务器接收到相同的命令。
下载器:这是一类只是用来下载其他恶意代码的恶意代码。下载器通常是在攻击者获得系统的访问时首先进行安装的。下载器程序会下载和安装其他的恶意代码。
间谍软件:这是一 类从受害计算机上收集信息并发送给攻击者的恶意代码。比如:嗅探器、密码哈希采集器、键盘记录器等。这类恶意代码通常用来获取E-mail、在线网银等账号的访问信息。
启动器:用来启动其他恶意程序的恶意代码。通常情况下,启动器使用一 些非传统的技术,来启动其他恶意程序,以确保其隐蔽性,或者以更高权限访问系统。
内核套件:设计用来隐藏其他恶意代码的恶意代码。内核套件通常是与其他恶意代码(如后门)组合成工具套装,来允许为攻击者提供远程访问,并且使代码很难被受害者发现。
勒索软件:设计成吓唬受感染的用户,来勒索他们购买某些东西的恶意代码。这类软件通常有一个用户界面,使得它看起来像是一 个杀毒软件或其他安全程序。它会通知用户系统中存在恶意代码,而唯一 除掉它们的方法只有购买他们的 “软件” ,而事实上,他们所卖软件的全部功能只不过是将勒索软件进行移除而已。
发送垃坡邮件的恶意代码:这类恶意代码在感染用户计算机之后,便会使用系统与网络资源来发送大量的垃圾邮件。这类恶意代码通过为攻击者出售垃圾邮件发送服务而获得收益。
蠕虫或计算机病毒:可以自我复制和感染其他计算机的恶意代码。
恶意代码分析通用规则
首先, 不要过于陷入细节。
其次, 请记住对于不同的工作任务, 可以使用不同的工具和方法。
最后, 请记住, 恶意代码分析就像是猫抓老鼠的游戏。 在新的恶意代码分析技术开发的同时,恶意代码编写者也在回应着可以挫败分析的新技术。 作为一名恶意代码分析师, 你如果想要取得成功, 就必须能够认识、 理解和战胜这些新技术, 并能够快速地应对恶意代码分析艺术的新变化。